package com.yunban.project.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunban.project.template.model.domain.Template;
import com.yunban.project.template.model.dto.TemplateReq;
import com.yunban.project.template.model.dto.TemplateSearchReq;
import com.yunban.project.template.model.vo.TemplateResp;
import net.lab1024.sa.base.common.domain.PageResult;

import java.util.List;

/**
 * @author: lijiajun
 * @date: 2024-11-06
 * @version: 1.0
 */
public interface TemplateService extends IService<Template> {

    Template findById(long id);


    List<Template> findByUserId(long userId);

    /**
     * 筛选-分页查询
     *
     * @param req 分页筛选参数
     * @return PageResult<E>
     */
    PageResult<TemplateResp> search(TemplateSearchReq req);

    List<TemplateResp> getTemplateList();

    /**
     * 添加模板
     *
     * @param req 模板参数
     * @return bool
     */
    Boolean saveTemplate(TemplateReq req);

    /**
     * 修改模板
     *
     * @param id  模板ID
     * @param req 模板参数
     * @return bool
     */
    Boolean editTemplate(long id, TemplateReq req);

    /**
     * 删除模板
     *
     * @param id 模板ID
     * @return bool
     */
    Boolean delTemplate(long id);

    /**
     * 收藏模板
     *
     * @param id 模板ID
     * @return bool
     */
    Boolean collect(long id);
}
